package com.itheima.d10_parse_annotation;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/*
需求：
    定义若干个方法，只要加了MyTest注解，就可以在启动时被触发执行
分析：
    定义一个自定义注解MyTest，只能注解方法，存活范围是一直都在。
    定义若干个方法，只要有@MyTest注解的方法就能在启动时被触发执行，没有这个注解的方法不能执行。

 */
public class Demo02 {

    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
        Class<Demo02Test> cls = Demo02Test.class;

        Constructor<Demo02Test> constructor = cls.getConstructor();
        Demo02Test obj = constructor.newInstance();

        Method[] methods = cls.getDeclaredMethods();
        for (Method method : methods) {
            method.invoke(obj);
        }
    }
}
